package com.yfqy.admin.domain.mapper;

import com.yfqy.admin.domain.entity.SysRoleMenu;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysRoleMenuMapper {
    int deleteByPrimaryKey(Long id);

    int insert(SysRoleMenu record);

    int insertSelective(SysRoleMenu record);

    SysRoleMenu selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(SysRoleMenu record);

    int updateByPrimaryKey(SysRoleMenu record);

    void updateMenuStatusToRoles(@Param("menuId") Long menuId, @Param("status") Byte status, @Param("modifiedBy") Long modifiedBy);

    void deleteRoleMenusWithModifyUser(@Param("roleId") Long roleId, @Param("modifiedBy") Long modifiedBy);

    List<Long> selectMenuIdsByRoleId(@Param("roleId") Long roleId);

    void deletePartRoleMenusWithModifyUser(@Param("roleMenuIds") List<Long> roleMenuIds, @Param("roleId") Long roleId, @Param("modifiedBy") Long modifiedBy);

    void addMenusToRole(@Param("addMenuIds") List<Long> addMenuIds, @Param("roleId") Long roleId, @Param("modifiedBy") Long modifiedBy);

    void deleteRoleMenusByMenuId(@Param("menuId") Long menuId, @Param("modifiedBy") Long modifiedBy);

    void deleteRoleMenusByRoleId(@Param("roleId") Long roleId, @Param("modifiedBy") Long modifiedBy);

    List<Long> selectRoleIdsByMenuId(@Param("menuId") Long menuId);
}